Міністерство освіти та науки України
Національний університет «Львівська політехніка»
ЗВІТ
З лабораторних робіт №1-5
З дисципліни: «Програмування ч.4»
Мета:
1) Дано натуральні числа а і b. Обчислити їх суму а + b. Використовувати оператори присвоювання лише виду
<Змінна1>: = <Змінна2>,
< Змінна>: = <число>,
<Змінна1>: = < Змінна 2> + 1.
2) Елементами масиву a [1 .. n] є неспадаючі масиви [1 .. m] цілих чисел:
a: array [1 .. n] of array [1 .. m] of integer;
a [1] [1] ≤ ... ≤ a [1] [m], ..., a [n] [1] ≤ ... ≤ a [n] [m].
Відомо, що існує число, що входить у всі масиви a [i] (існує таке x, що для всякого i з 1 .. n знайдеться j з 1 .. m, для якого a [i] [j] = x). Знайти одне з таких чисел х.
3) Надрукувати всі послідовності додатніх цілих чисел довжини k, у яких i-ий член не перевершує i.
4) Перерахувати всі способи розстановки n ферзів на шахівниці n на n, при яких вони не б'ють один одного.
5) Є масив цілих чисел a [1] .. a [n], причому всі числа невід'ємні і не перевершують m. Відсортувати цей масив; число дій порядку m + n.
Блок-схеми:
1)
2)
3)
4)
5)
Лістінги програм:
/****************************************************************\
FILE..........: main.cpp
AUTHOR........: Toma Gres
DESCRIPTION...: Laboratory work, designed to solve common problems
METHOD........: Add, Seek, Length, Generate, Create_arr, show_arr, mod_arr, Exit, Backtracking, Print_Count,Sort
FUNCTIONS.....: Add, Seek_num, Length, Generate, Create_arr, show_arr, mod_arr, Exit, Backtracking, Sort
SWITCHES......: WIN32 - if defined, 32-bit version is
compiled, otherwise 16-bit edition is compiled.
COPYRIGHT.....: Copyright (c) 2010, KI-21.
HISTORY.......: DATE COMMENT
-------- --------------------------------------
-
03-29-10 Created - Toma
04-02-10 Modified - Toma
\****************************************************************/
/*===============================[ PUBLIC DECLARATIONS ]========*/
#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <ctime>
#include<clocale>
#include "main.h"
#define N 3
#define M 3
using namespace std;
void main()
{
/*===============================[ OBJECT DECLARATIONS ]========*/
CAdd* add;
CSeek* seek;
CAmount* amount;
CQueen* queen;
CSort* OSort;
/*===============================[ PRIVATE DECLARATIONS]=======*/
int iLab_n;
setlocale(LC_CTYPE, "");
cout << "Введiть номер лабораторної роботи: ";
cin >> iLab_n;
switch(iLab_n)
{
/*=============[Laba 1]=================*/
case 1:
cout << "Procedure-oriented method" << endl;
int iA,iB;
cout << "a = ";
cin >> iA;
cout << "b = ";
cin >> iB;
cout << "sum = " << Add(iA,iB) << endl;
system("PAUSE");
system("cls");
cout << "Object-oriented method" << endl;
cout << "a = ";
cin >> iA;
cout << "b = ";
cin >> iB;
add = new CAdd(iA,iB);
cout << "sum = " << add->Add() << endl;
system("PAUSE");
break;
/*=============[End Laba 1]=================*/
/*=============[Laba 2]=================*/
case 2:
cout << "Procedure-oriented method" << endl;
cout << Seek_num() << endl;
system("PAUSE");
system("cls");
cout << "Object-oriented method" << endl;
seek = new CSeek();
cout << seek->Seek() << endl;
system("PAUSE");
break;
/*=============[End Laba 2]=================*/
/*=============[Laba 3]=================*/
case 3:
cout << "Procedure-oriented method" << endl;
int iK;
cout << "k = ";
cin >> iK;
Generate(iK);
system("PAUSE");
system("cls");
cout << "Object-oriented method" << endl;
cout << "k = ";
cin >> iK;
amount = new CAmount(iK);
amount->Generate();
break;
/*=============[End Laba 3]=================*/
case 4:
/*=============[Laba 4]=================*/
cout << "Procedure-oriented method" << endl;
int iCount,iN;
int* piArr;
int** ppiDoshka;
cout << "n = ";
cin >> iN;
piArr = new int[iN];
ppiDoshka = new int*[iN];
for(int i=0;i<iN;i++)
{
ppiDoshka[i] = new int[iN];
}
Create_arr(ppiDoshka, iN);
iCo...